package com.helen.ui.userinfo;

import android.content.Intent;
import android.text.Editable;
import android.text.Selection;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;

import com.helen.shopping.R;
import com.helen.ui.BaseActivity;
import com.helen.utils.tiputils.MToast;
import com.helen.widget.MyEditText;

import butterknife.BindView;
import butterknife.OnClick;


/**
 * Created by wangyang on 2018/4/25 0009.
 * 修改用户昵称
 */

public class UpdateUserNameActivity extends BaseActivity {
    @BindView(R.id.et_name_adress)
    MyEditText etName;
    private String userInfoName;

    @Override
    protected int attachLayoutRes() {
        return R.layout.activity_update_user_name;
    }

    @Override
    protected void initInjector() {

    }

    @Override
    protected void initViews() {
        getToolbarTitle().setText("昵称修改");
        getSubTitle().setText("保存");
        userInfoName = getIntent().getStringExtra("userInfoName");
        etName.setText(userInfoName);
        etName.setSelection(etName.getText().toString().length());
        etName.addTextChangedListener(new EditChangedListener());

    }

    class EditChangedListener implements TextWatcher {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            check();
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    }

    @Override
    protected void updateViews() {

    }

    //保存
    @OnClick(R.id.toolbar_subtitle)
    public void save(View view) {
        if (TextUtils.isEmpty(etName.getText().toString().trim())) {
            MToast.makeTextShort(UpdateUserNameActivity.this, "昵称不能为空", toastConfig).show();
            return;
        }

        Intent intent = new Intent();
        intent.putExtra("userInfoName", etName.getText().toString().trim());
        setResult(RESULT_OK, intent);
        finish();
    }


    private void check() {
        int mTextMaxlenght = 0;
        Editable editable = etName.getText();
        String str = editable.toString().trim();
        //得到最初字段的长度大小，用于光标位置的判断
        int selEndIndex = Selection.getSelectionEnd(editable);
        // 取出每个字符进行判断，如果是字母数字和标点符号则为一个字符加1，
        //如果是汉字则为两个字符
        for (int i = 0; i < str.length(); i++) {
            char charAt = str.charAt(i);
            //32-122包含了空格，大小写字母，数字和一些常用的符号，
            //如果在这个范围内则算一个字符，
            //如果不在这个范围比如是汉字的话就是两个字符
            if (charAt >= 32 && charAt <= 122) {
                mTextMaxlenght++;
            } else {
                mTextMaxlenght += 2;
            }
            // 当最大字符大于20时，进行字段的截取，并进行提示字段的大小
            if (mTextMaxlenght > 20) {

                // 截取最大的字段
                String newStr = str.substring(0, i);
                etName.setText(newStr);

                // 得到新字段的长度值
                editable = etName.getText();
                int newLen = editable.length();
                if (selEndIndex > newLen) {
                    selEndIndex = editable.length();
                }
                // 设置新光标所在的位置
                Selection.setSelection(editable, selEndIndex);
                MToast.makeTextShort(UpdateUserNameActivity.this, "昵称不能超过10个汉字或20个字符", toastConfig).show();
            }
        }


    }


}
